package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.business.vo.QstagModbusTcp;
import com.ruoyi.system.domain.DlldrInfo;
import com.ruoyi.system.domain.Qstag;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 变量寄存器配置Service接口
 * 
 * @author yaozh
 * @date 2024-02-24
 */
public interface IQstagService 
{
    List<Qstag> findAll(String dbName);

    /**
     * 根据tagName的中文名称（tagNameCN字段）进行等值查询
     * @param dbName
     * @param tagNameCN
     */
    Qstag findObjectByTagNameCnEquals(String dbName, String tagNameCN);
    List<Qstag> findAllQsTagOfTagNameCN(String dbName);

    List<Qstag> findAllByTagNameCNLike(String dbName, String tagName);

    List<Qstag> findAllByItemDrIdAndItemId(String dbName, Integer itemDrId, String itemId);

    /**
     * 根据tagName进行模糊查询
     * @param dbName
     * @param tagName
     * @return
     */
    List<Qstag> findAllByTagNameLike(String dbName, String tagName);

    int updateFormulaByTagName(String dbName, Qstag qstag);

    int updateFormula(String dBname, Qstag qstag);

    /**
     * 批量操作点位信息
     * @param dBname
     * @param list
     * @param deleteList
     */
    void importObjectsByImport(String dBname, List<Qstag> list, List<Qstag> deleteList);

    /**
     * 根据tagName进行等值查询
     * @param dbName
     * @param tagName
     * @return
     */
    Qstag findObjectByTagNameEquals(String dbName, String tagName);

    /**
     * 查询变量寄存器配置
     * 
     * @param tagid 变量寄存器配置主键
     * @return 变量寄存器配置
     */
    public Qstag selectQstagByTagid(Long tagid,String dbName);

    List<Qstag> selectQstagByTagidList(Long[] list, String dbName);

    /**
     * 查询变量寄存器配置列表
     * 
     * @param qstag 变量寄存器配置
     * @return 变量寄存器配置集合
     */
    public List<Qstag> selectQstagList(Qstag qstag,String dbName);

    /**
     * 只返回首页参数的数据
     *
     * @param dbName
     * @return
     */
    public List<Qstag> selectHomepageQsTagList(String dbName);

    /**
     * 新增变量寄存器配置
     * 
     * @param qstag 变量寄存器配置
     * @return 结果
     */
    public int insertQstag(Qstag qstag,String dbName);

    /**
     * 修改变量寄存器配置
     * 
     * @param qstag 变量寄存器配置
     * @return 结果
     */
    public int updateQstag(Qstag qstag,String dbName);

    /**
     * 批量删除变量寄存器配置
     * 
     * @param tagids 需要删除的变量寄存器配置主键集合
     * @return 结果
     */
    public int deleteQstagByTagids(Long[] tagids,String dbName);

    /**
     * 删除变量寄存器配置信息
     * 
     * @param tagid 变量寄存器配置主键
     * @return 结果
     */
    public int deleteQstagByTagid(Long tagid,String dbName);

    public String importQsTag(List<Qstag> qsTagList, Boolean isUpdateSupport, String operaName, String dbName);

    public String importQsTagInit(List<QstagModbusTcp> qsTagList, Boolean isUpdateSupport, String operaName, String dbName);

}
